from datetime import datetime, timedelta


def calculate_time_difference(time1, time2):
    """
    计算两个时间之间的间隔。

    :param time1: 第一个时间，格式为 'YYYY-MM-DD HH:MM:SS'
    :param time2: 第二个时间，格式为 'YYYY-MM-DD HH:MM:SS'
    :return: 时间间隔，单位为秒
    """
    format = '%Y-%m-%d %H:%M:%S'
    datetime1 = datetime.strptime(time1, format)
    datetime2 = datetime.strptime(time2, format)
    difference = datetime2 - datetime1
    return difference.total_seconds() / 3600


def add_time(base_time, days=0, hours=0, minutes=0, seconds=0):
    """
    在给定的时间上加上指定的时间间隔。

    :param base_time: 基础时间，格式为 'YYYY-MM-DD HH:MM:SS'
    :param days: 要加上的天数
    :param hours: 要加上的小时数
    :param minutes: 要加上的分钟数
    :param seconds: 要加上的秒数
    :return: 新的时间，格式为 'YYYY-MM-DD HH:MM:SS'
    """
    format = '%Y-%m-%d %H:%M:%S'
    datetime_base = datetime.strptime(base_time, format)
    new_time = datetime_base + timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
    return new_time.strftime(format)


def subtract_time(base_time, days=0, hours=0, minutes=0, seconds=0):
    """
    在给定的时间上减去指定的时间间隔。

    :param base_time: 基础时间，格式为 'YYYY-MM-DD HH:MM:SS'
    :param days: 要减去的天数
    :param hours: 要减去的小时数
    :param minutes: 要减去的分钟数
    :param seconds: 要减去的秒数
    :return: 新的时间，格式为 'YYYY-MM-DD HH:MM:SS'
    """
    format = '%Y-%m-%d %H:%M:%S'
    datetime_base = datetime.strptime(base_time, format)
    new_time = datetime_base - timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
    return new_time.strftime(format)


# 示例用法
time1 = '2024-07-16 21:30:00'
time2 = '2024-07-17 15:46:00'

# 计算时间间
interval = calculate_time_difference(time1, time2)
print(f"时间间隔为 {interval} H")

# # 时间加法
# new_time_add = add_time(time1, days=1, hours=2, minutes=30)
# print(f"加法后的时间: {new_time_add}")
#
# # 时间减法
new_time_subtract = subtract_time(time2, days=0, hours=18, minutes=0)
print(f"减法后的时间: {new_time_subtract}")